import { Component, VNode } from "vue";

export namespace IBox {

    // 可放大的容器 props
    export interface ZoomProps {
        width?:string;
        height?:string;
        top?:string;
        left?:string;
        showOperate?:boolean
        useAnimationApi?:boolean
    }

    // 可变大小 容器
    export interface ResizeProps {
        // 方向 两个容器 是水平还是垂直放置
        direction?:"horizontal" | "vertiacal"
        // 容器1 配置
        box1?:{minSize?:string,maxSize?:string,size?:string,flex?:boolean}
        // 容器2 配置
        box2?:{minSize?:string,maxSize?:string,size?:string,flex?:boolean}
    }
    // 可变大小 多容器
    export interface ResizesProps {
        // 方向 两个容器 是水平还是垂直放置
        direction?:"horizontal" | "vertiacal"
        // 容器 配置 name 会成为插槽名 不指定默认用 box + 索引  例如 box1 box2 box3s
        boxs?:{name?:string,minSize?:string,maxSize?:string,size?:string,flex?:boolean}[]
        // 是否锁定 box 容器大小，不允许进行大小改变
        lockBox?:boolean
        // 是否锁定容器之间的 resize 行为
        lockItems?:boolean
        
    }
    //
    // 可变大小 容器抽屉
    export interface ResizeDrawerProps {
        // 方向 两个容器 是水平还是垂直放置
        direction?:"top" | "left" | "bottom" | "right"
        //  配置
        minSize?:string
        //
        maxSize?:string
        //
        size?:string
        //
        visible?:boolean
    }
    // 
    export interface ScrollProps {
        x?:number // 滚动条位置 页面位置 (!不是滑块距离)
        y?:number // 滚动条位置 页面位置 (!不是滑块距离)
        minSize?:number // 滑块最小尺寸 // 同时设定 水平和垂直方向 
        trackSize?:number // 轨道尺寸
        thumbClass?:string // 
    }

    export interface PopverProps {
        direction?:"bottom" | "left" | 'top' | 'right'
        trigger?:"click" | 'hover'
        parent?:string | HTMLElement
        text:string | VNode | Component // 文本或者定制化节点，或者用插槽 reference
    }
}